home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / vdl020d.zip / VIN.DOC < prev    next >
Text File  |  1993-04-14  |  10KB  |  570 lines

  1. {
  2.  ════════════════════════════════════════════════════════════════════════════
  3.  
  4.  Visionix Input Unit (VIN)
  5.  Copyright 1991,92,93 Visionix
  6.  ALL RIGHTS RESERVED
  7.  
  8.  ────────────────────────────────────────────────────────────────────────────
  9.  
  10.  Revision history in reverse chronological order:
  11.  
  12.  Initials  Date      Comment
  13.  ────────  ────────  ────────────────────────────────────────────────────────
  14.  
  15.  lpg       03/15/93  Added Source Documentation
  16.  
  17.  mep       02/11/93  Cleaned up code for beta release
  18.  
  19.  jrt       02/08/93  Sync with beta 0.12 release
  20.  
  21.  jrt       12/07/92  Sync with beta 0.11 release
  22.  
  23.  jrt       11/21/92  Sync with beta 0.08
  24.  
  25.  jrt       09/01/92  First logged revision.
  26.  
  27.  ════════════════════════════════════════════════════════════════════════════
  28. }
  29.  
  30. {$V-}
  31.  
  32. Unit VIn;
  33.  
  34.  
  35. Uses
  36.  
  37.   VTypes,
  38.   VMulti;
  39.  
  40. {────────────────────────────────────────────────────────────────────────────}
  41.  
  42. Const
  43.  
  44.   Key_Tab       = 9;
  45.   Key_ESC       = 27;
  46.   Key_CR        = 13;
  47.  
  48.   Key_ShiftTab  = 15;
  49.   Key_PgDn      = 81;
  50.   Key_PgUp      = 73;
  51.   Key_Home      = 71;
  52.   Key_End       = 79;
  53.   Key_Down      = 80;
  54.   Key_Up        = 72;
  55.   Key_Right     = 77;
  56.   Key_Left      = 75;
  57.  
  58.   Key_Ins       = 82;
  59.   Key_Del       = 83;
  60.  
  61.   Key_F1        = 59;
  62.   Key_F2        = 60;
  63.   Key_F3        = 61;
  64.   Key_F4        = 62;
  65.   Key_F5        = 63;
  66.   Key_F6        = 64;
  67.   Key_F7        = 65;
  68.   Key_F8        = 66;
  69.   Key_F9        = 67;
  70.   Key_F10       = 68;
  71.  
  72.   IDF_DriverNew      = 1;
  73.   IDF_DriverOff      = 2;
  74.   IDF_DriverOn       = 3;
  75.   IDF_DriverDispose  = 4;
  76.   IDF_Look           = 5;
  77.   IDF_Read           = 6;
  78.   IDF_Write          = 7;
  79.   IDF_State          = 8;
  80.   IDF_Flush          = 9;
  81.   IDF_Pressed        = 10;
  82.  
  83.   IDS_Changed        = 1;
  84.   IDS_Install        = 2;
  85.   IDS_Sequence       = 4;
  86.  
  87.   KDP_New            = 1;
  88.   KDP_Do             = 2;
  89.   KDP_Dispose        = 3;
  90.  
  91. Type
  92.  
  93.   PInDriverPacket=^TInDriverPacket;
  94.  
  95.   TInDriverProc = Procedure( IDPacket : PInDriverPacket );
  96.  
  97.   TProcName = String[20];
  98.  
  99.   PProcName = ^TProcName;
  100.  
  101.   {----}
  102.  
  103.   TInDriverPacket = Record
  104.  
  105.     Func          : WORD;
  106.     ID            : Pointer;
  107.     InDriverProc  : TInDriverProc;
  108.     SysKeyBuff    : Pointer;
  109.     Name          : PProcName;
  110.     DriverInfo    : Pointer;
  111.     Key           : CHAR;
  112.     State         : BYTE;
  113.     KeysToWrite   : PString;
  114.     Pressed       : BOOLEAN;
  115.  
  116.     Status        : WORD;
  117.  
  118.   End;
  119.  
  120.   PInDriverProc = ^TInDriverProc;
  121.  
  122.   {----}
  123.  
  124.   PInDriverList = ^TInDriverList;
  125.  
  126.   TInDriverList = Record
  127.  
  128.     Proc      : TInDriverProc;
  129.     ID        : Pointer;
  130.     Next      : PInDriverList;
  131.  
  132.   End;
  133.  
  134.   {----}
  135.  
  136.  
  137.   TKeyProc = Procedure( Status     : BYTE;
  138.                         Key1, Key2 : CHAR   );
  139.  
  140.   PKeyProcList = ^TKeyProcList;
  141.  
  142.   TKeyProcList = RECORD
  143.  
  144.     Key1       : CHAR;
  145.     Key2       : CHAR;
  146.     Proc       : TKeyProc;
  147.     Name       : TProcName;
  148.     ProcInfo   : Pointer;
  149.     Off        : WORD;
  150.     Next       : PKeyProcList;
  151.  
  152.   END;
  153.  
  154.   {----}
  155.  
  156.   TInDriverIData = Record
  157.  
  158.     KeyBuff : PString;
  159.     Off     : WORD;
  160.     Name    : TProcName;
  161.  
  162.   END;
  163.  
  164.   PInDriverIData = ^TInDriverIData;
  165.  
  166.   {----}
  167.  
  168. {────────────────────────────────────────────────────────────────────────────}
  169.  
  170. Procedure VInDriverNew(              Proc        : TInDriverProc;
  171.                                      Name        : TProcName;
  172.                                      DriverInfo  : Pointer;
  173.                                  Var Err         : WORD       );
  174.  
  175. Procedure VInDriverOff(              Name        : TProcName  );
  176.  
  177. Procedure VInDriverOn(               Name        : TProcName  );
  178.  
  179. Procedure VInDriverDispose(          Name        : TProcName  );
  180.  
  181. Function  VInLook    : CHAR;
  182.  
  183. Function  VInRead    : CHAR;
  184.  
  185. Function  VInState   : BYTE;
  186.  
  187. Procedure VInWrite( Keys : String );
  188.  
  189. Function  VInPressed : BOOLEAN;
  190.  
  191. Procedure VInFlush;
  192.  
  193. Procedure VKeyProcNew(                Key1        : CHAR;
  194.                                       Key2        : CHAR;
  195.                                       Proc        : TKeyProc;
  196.                                       Name        : TProcName;
  197.                                       ProcInfo    : Pointer;
  198.                                   Var Err         : WORD       );
  199.  
  200. Procedure VKeyProcOff(                Name        : TProcName  );
  201.  
  202. Procedure VKeyProcOn(                 Name        : TProcName  );
  203.  
  204. Procedure VKeyProcDispose(            Name        : TProcName  );
  205.  
  206. {Procedure DefaultInDriverProc( IDP : PInDriverPacket );}
  207.  
  208. {────────────────────────────────────────────────────────────────────────────}
  209.  
  210.  
  211. ──────────────────────────────────────────────────────────────────────────────
  212.  
  213.  
  214. [FUNCTION]
  215.  
  216. Procedure CallInDrivers(          IDP       : PInDriverPacket );
  217.  
  218. [PARAMETERS]
  219.  
  220. IDP         Pointer to In-Data Driver Packet
  221.  
  222. [RETURNS]
  223.  
  224. (None)
  225.  
  226. [DESCRIPTION]
  227.  
  228. [SEE-ALSO]
  229.  
  230. [EXAMPLE]
  231.  
  232.  
  233. ──────────────────────────────────────────────────────────────────────────────
  234.  
  235.  
  236. [FUNCTION]
  237.  
  238. Procedure VInDriverNew(              Proc        : TInDriverProc;
  239.                                      Name        : TProcName;
  240.                                      DriverInfo  : Pointer;
  241.                                  Var Err         : WORD       );
  242.  
  243. [PARAMETERS]
  244.  
  245. Proc        ?
  246. Name        ?
  247. DriverInfo  ?
  248. Err         VAR Returned ?
  249.  
  250. [RETURNS]
  251.  
  252. Function : None
  253. (VAR     : [Err] ?)
  254.  
  255. [DESCRIPTION]
  256.  
  257. [SEE-ALSO]
  258.  
  259. [EXAMPLE]
  260.  
  261.  
  262. ──────────────────────────────────────────────────────────────────────────────
  263.  
  264.  
  265. [FUNCTION]
  266.  
  267. Procedure VInDriverOff(              Name        : TProcName  );
  268.  
  269. [PARAMETERS]
  270.  
  271. Name        ?
  272.  
  273. [RETURNS]
  274.  
  275. (None)
  276.  
  277. [DESCRIPTION]
  278.  
  279. [SEE-ALSO]
  280.  
  281. [EXAMPLE]
  282.  
  283.  
  284. ──────────────────────────────────────────────────────────────────────────────
  285.  
  286.  
  287. [FUNCTION]
  288.  
  289. Procedure VInDriverOn(               Name        : TProcName  );
  290.  
  291. [PARAMETERS]
  292.  
  293. Name        ?
  294.  
  295. [RETURNS]
  296.  
  297. (None)
  298.  
  299. [DESCRIPTION]
  300.  
  301. [SEE-ALSO]
  302.  
  303. [EXAMPLE]
  304.  
  305.  
  306. ──────────────────────────────────────────────────────────────────────────────
  307.  
  308.  
  309. [FUNCTION]
  310.  
  311. Procedure VInDriverDispose(          Name        : TProcName  );
  312.  
  313. [PARAMETERS]
  314.  
  315. Name        ?
  316.  
  317. [RETURNS]
  318.  
  319. (None)
  320.  
  321. [DESCRIPTION]
  322.  
  323. [SEE-ALSO]
  324.  
  325. [EXAMPLE]
  326.  
  327.  
  328. ──────────────────────────────────────────────────────────────────────────────
  329.  
  330.  
  331. [FUNCTION]
  332.  
  333. Function  VInLook                                            : CHAR;
  334.  
  335. [PARAMETERS]
  336.  
  337. (None)
  338.  
  339. [RETURNS]
  340.  
  341. [DESCRIPTION]
  342.  
  343. [SEE-ALSO]
  344.  
  345. [EXAMPLE]
  346.  
  347.  
  348. ──────────────────────────────────────────────────────────────────────────────
  349.  
  350.  
  351. [FUNCTION]
  352.  
  353. Function CallKeyProcList(         Key1      : CHAR;
  354.                                   Key2      : CHAR           ) : BOOLEAN;
  355.  
  356. [PARAMETERS]
  357.  
  358. Key1        ?
  359. Key2        ?
  360.  
  361. [RETURNS]
  362.  
  363. [DESCRIPTION]
  364.  
  365. [SEE-ALSO]
  366.  
  367. [EXAMPLE]
  368.  
  369.  
  370. ──────────────────────────────────────────────────────────────────────────────
  371.  
  372.  
  373. [FUNCTION]
  374.  
  375. Function  VInRead                                            : CHAR;
  376.  
  377. [PARAMETERS]
  378.  
  379. (None)
  380.  
  381. [RETURNS]
  382.  
  383. [DESCRIPTION]
  384.  
  385. [SEE-ALSO]
  386.  
  387. [EXAMPLE]
  388.  
  389.  
  390. ──────────────────────────────────────────────────────────────────────────────
  391.  
  392.  
  393. [FUNCTION]
  394.  
  395. Function  VInState                                           : BYTE;
  396.  
  397. [PARAMETERS]
  398.  
  399. (None)
  400.  
  401. [RETURNS]
  402.  
  403. [DESCRIPTION]
  404.  
  405. [SEE-ALSO]
  406.  
  407. [EXAMPLE]
  408.  
  409.  
  410. ──────────────────────────────────────────────────────────────────────────────
  411.  
  412.  
  413. [FUNCTION]
  414.  
  415. Procedure VInWrite( Keys : String );
  416.  
  417. [PARAMETERS]
  418.  
  419. Keys        ?
  420.  
  421. [RETURNS]
  422.  
  423. [DESCRIPTION]
  424.  
  425. [SEE-ALSO]
  426.  
  427. [EXAMPLE]
  428.  
  429.  
  430. ──────────────────────────────────────────────────────────────────────────────
  431.  
  432.  
  433. [FUNCTION]
  434.  
  435. Function  VInPressed                                         : BOOLEAN;
  436.  
  437. [PARAMETERS]
  438.  
  439. (None)
  440.  
  441. [RETURNS]
  442.  
  443. [DESCRIPTION]
  444.  
  445. [SEE-ALSO]
  446.  
  447. [EXAMPLE]
  448.  
  449.  
  450. ──────────────────────────────────────────────────────────────────────────────
  451.  
  452.  
  453. [FUNCTION]
  454.  
  455. Procedure VInFlush;
  456.  
  457. [PARAMETERS]
  458.  
  459. (None)
  460.  
  461. [RETURNS]
  462.  
  463. (None)
  464.  
  465. [DESCRIPTION]
  466.  
  467. [SEE-ALSO]
  468.  
  469. [EXAMPLE]
  470.  
  471.  
  472. ──────────────────────────────────────────────────────────────────────────────
  473.  
  474.  
  475. [FUNCTION]
  476.  
  477. Procedure VKeyProcNew(                Key1        : CHAR;
  478.                                       Key2        : CHAR;
  479.                                       Proc        : TKeyProc;
  480.                                       Name        : TProcName;
  481.                                       ProcInfo    : Pointer;
  482.                                   Var Err         : WORD       );
  483.  
  484. [PARAMETERS]
  485.  
  486. Key1        ?
  487. Key2        ?
  488. Proc        ?
  489. Name        ?
  490. ProcInfo    ?
  491. Err         VAR Returned ?
  492.  
  493. [RETURNS]
  494.  
  495. Function : None
  496. (VAR     : [Err] ?)
  497.  
  498. [DESCRIPTION]
  499.  
  500. [SEE-ALSO]
  501.  
  502. [EXAMPLE]
  503.  
  504.  
  505. ──────────────────────────────────────────────────────────────────────────────
  506.  
  507.  
  508. [FUNCTION]
  509.  
  510. Procedure VKeyProcOff(                Name        : TProcName  );
  511.  
  512. [PARAMETERS]
  513.  
  514. Name        ?
  515.  
  516. [RETURNS]
  517.  
  518. (None)
  519.  
  520. [DESCRIPTION]
  521.  
  522. [SEE-ALSO]
  523.  
  524. [EXAMPLE]
  525.  
  526.  
  527. ──────────────────────────────────────────────────────────────────────────────
  528.  
  529.  
  530. [FUNCTION]
  531.  
  532. Procedure VKeyProcOn(                 Name        : TProcName  );
  533.  
  534. [PARAMETERS]
  535.  
  536. Name        ?
  537.  
  538. [RETURNS]
  539.  
  540. (None)
  541.  
  542. [DESCRIPTION]
  543.  
  544. [SEE-ALSO]
  545.  
  546. [EXAMPLE]
  547.  
  548.  
  549. ──────────────────────────────────────────────────────────────────────────────
  550.  
  551.  
  552. [FUNCTION]
  553.  
  554. Procedure VKeyProcDispose(            Name        : TProcName  );
  555.  
  556. [PARAMETERS]
  557.  
  558. Name        ?
  559.  
  560. [RETURNS]
  561.  
  562. (None)
  563.  
  564. [DESCRIPTION]
  565.  
  566. [SEE-ALSO]
  567.  
  568. [EXAMPLE]
  569.  
  570.